package main

import (
	"fmt"
)

//定义一个接口 本质上是一个指针
type AnimalIF interface {
	Sleep()
	GetColor() string //获取动物的颜色
	GetType() string  //获取动物的种类
}

//具体的类 必须要全部实现了才能算实现了接口
type Cat struct {
	color string
}

func (this *Cat) Sleep() {
	fmt.Println("Cat is Sleep")
}
func (this *Cat) GetColor() string {
	return this.color
}
func (this *Cat) GetType() string {
	return "Cat"
}
func main() {
	var animal AnimalIF
	animal = &Cat{"Green"}
	animal.Sleep()
	color := animal.GetColor()

	fmt.Print(color)
}
